This disclosure relates generally to the field of computer databases. More particularly, but not by way of limitation, it relates to a technique for reorganizing a hierarchical computer database.
Computer databases have been an important part of enterprises for decades. Two major types of computer databases are hierarchical databases and relational databases. Unlike relational databases, organized into tables of rows and columns, hierarchical databases are organized into tree-like hierarchical structures representing logical data relationships. The most recognized and widely used hierarchical database system is the Information Management System (IMS) marketed by International Business Machines Corporation (IBM).
One form of IMS database is known as a Fast Path database, and is optimized for extremely high transaction rates. Data Entry DataBases (DEDBs) are one type of Fast Path database, originally designed for the management of customer accounts in large banks, but now used for many other kinds of applications where high volumes of transactions are required.
Data in a DEDB database is stored on disk drives in a plurality of Virtual Storage Access Method (VSAM) datasets, each known as an area. The IMS database system allows a database to contain up to 4096 areas, each of which may be 4 GB in size. The areas are relatively independent of each other, and multiple areas may be processed in parallel, reducing run times for such things as overnight batch processes and other tasks that involve processing on an entire database.
The way in which records are assigned to areas is controlled by database administrators. Data is typically grouped so that data with different characteristics are stored in different areas, allowing different disk space definitions for different areas to achieve optimal performance. For example, separate areas may be used for records for which processing is done on different cycles.
From time to time, a database administrator may reorganize all or parts of the database for various reasons, such as to improve performance of the database. There are two kinds of reorganization: (1) physical restructuring to optimize the physical storage of the database, and (2) logical restructuring to optimize the database logical structure. Physical restructuring may be performed to reorganize the existing physical storage datasets on disk for better performance or to alter the physical storage, such as to change the size of the dataset holding an area of the database. Logical restructuring may be performed to modify the hierarchy of the various database fields, such as to add additional fields to the database or to change the size of one or more fields.
In conventional DEDB databases, one area cannot be reorganized without stopping the entire database. Such events may be traumatic for an organization using the database for high availability, high transaction rate processing, and may take a significant amount of time in limited time windows of opportunity. Enterprises running such databases have long desired a way to avoid such total shutdowns of a hierarchical database, and may delay needed reorganizations to avoid such shutdowns, allowing reduced performance or database functionality until such a total shutdown may be accomplished.